package org.carl.akka.core;

import akka.actor.ActorRef;
import akka.actor.ActorSystem;
import org.carl.akka.base.BaseAkkaActor;

import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.atomic.AtomicReference;

/**
 * AkkaCore接口定义了与Akka框架核心功能相关的方法和常量。
 * 在这个例子中，它定义了一个用于存储Actor引用的并发安全映射表。
 */
public interface AkkaCore {
    AtomicReference<ActorSystem> ACTOR_SYSTEM = new AtomicReference<>();
    // 定义一个公共的静态最终映射表，键是BaseAkkaActor子类的Class对象，值是对应的ActorRef
    // 这个映射表用于快速查找和访问系统中的Actor
    Map<Class<? extends BaseAkkaActor>, ActorRef> ACTOR_REF_MAP = new ConcurrentHashMap<>();
}
